1. Field of the Invention
The present invention generally relates to physics processing and, more specifically, to a system for providing scalable physics content.
2. Description of the Related Art
An objective of conventional graphics engines is to generate highly-detailed computer graphics. Graphics engines, included in video games, computer aided-design (CAD) programs, simulation applications, and animation applications, among others, are configured to generate and display visual content. A developer produces computer graphics by writing a computer program that generates a two-dimensional (2D) or a three-dimensional (3D) virtual construct. In some cases, a computer program is written that generates a four-dimensional (4D) virtual construct, where time represents a fourth dimension in addition to three spatial dimensions. The developer uses the graphics engine to render an image that represents the virtual construct. The image may then be displayed on a computer screen.
Additionally, a developer may generate highly-detailed computer graphics by applying physical laws to the virtual construct to simulate the motion and/or properties associated with the virtual construct. The graphics engine may then be used to render images that appear physically realistic. For example, the virtual construct may be a pendulum, and the developer may simulate the motion of the virtual construct by applying the physical laws that govern pendulums to the virtual construct. The graphics engine may then be used to render a sequence of images that display physically realistic motion of the virtual construct.
However, several problems impede the productivity of developers. One problem with conventional techniques is that extensive programming knowledge is required to generate 2D, 3D, and 4D virtual constructs. Even when developers have a thorough understanding of programming, writing a computer program that generates a virtual construct to be rendered can be a laborious and time consuming process. Using conventional systems, each virtual construct in the virtual scene is programmed manually by the developer.
Another problem with conventional techniques is that computer programs written to generate and render virtual constructs may execute differently on different computing platforms or may not execute at all on a particular computing platform. One commonly implemented solution is to write several different versions of the computer program. Each version of the computer program is configured to generate and render a different version of the virtual construct. Depending on the capabilities of the computing platform, a particular version of the computer program may be selected to generate and render the virtual construct with a particular level of detail. However, requiring a developer to program multiple versions of the computer program and the virtual constructs further decreases the productivity of the developer.
Yet another problem with conventional techniques is that applying physical laws to virtual constructs significantly increases processor workload. Additionally, when these virtual constructs interact with one another, the interactions are also simulated by applying physical laws, further increasing the processor workload. As simulations include more interaction among virtual constructs, the number of physical calculations required increases dramatically. Since many computing platforms cannot handle the processing workload associated with physical simulations, the number of computing platforms capable of generating and rendering high-quality computer graphics is reduced.
Accordingly, there remains a need in the art for an improved technique for generating highly-detailed computer graphics that are physically accurate.